<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of articulos
 *
 * @author emontoro
 */
class usuario extends CI_Controller {

	function usuario() {
		parent::__construct();

		$this -> load -> database();
		$this -> load -> model('registro');
		$this -> load -> helper('url');
		$this->lang->load('tank_auth', 'spanish');
	}

	function inicio() {

		if (!isset($_POST['accion']))
		{
			if ($this -> tank_auth -> is_logged_in()) {

				// Si está logado, aparecen los datos de configuración:
				//   - Desconectar
				//   - Cambiar usuario
				//   - Cambiar mail
				//   - Cambiar password
				//   - Recordar
				
				$data['username'] = $this -> tank_auth -> get_username();
				$data['userid'] = $this -> tank_auth -> get_user_id();
				$data['email'] = $this -> tank_auth -> get_email_by_id();
				$data['recordar'] =$this -> tank_auth -> get_autologin_by_id();

				$this -> load -> view('principal/usuario_v', $data);

			} else {

				// Si NO está logado, aparecen los datos de Logarse o Darse de Alta:

//				$this -> load -> view('principal/login_v', $data);
				$this -> load -> view('principal/login_v');
			}
		} else {
		
			if ($_POST['accion'] == 'entrar')  //Validación del Login
			{
			
				$email = $this -> input -> post('email');
				$username = $this -> input -> post('email');
				$password = $this -> input -> post('password');
				$recordar = $this -> input -> post('recordar');

				if ($this -> tank_auth -> is_logged_in()) {
				// Se desconecta al usuario conectado
				}

				// Se realiza la conexión con el nuevo usuario

				$data['login_by_username'] = ($this -> config -> item('login_by_username', 'tank_auth') AND $this -> config -> item('use_username', 'tank_auth'));
				$data['login_by_email'] = $this -> config -> item('login_by_email', 'tank_auth');

				$error = 0;
				// Se inicializa el erro a 0. Indica que es correcto

				if ($this -> tank_auth -> login($username, $password, $recordar, $data['login_by_username'], $data['login_by_email'])) {
					// success
					$datajson['username'] = $this -> tank_auth -> get_username();
					$last_url = $this -> session -> flashdata('last_url');
				} else {
					$datajson['textoerror'] = 'Error validacion';
					$error = 1;
					$errors = $this -> tank_auth -> get_error_message();
					if (isset($errors['banned'])) {
					//// banned user
						$this -> _show_message($this -> lang -> line('auth_message_banned') . ' ' . $errors['banned']);
						$error = 1;
						$datajson['textoerror'] = 'Su cuenta está bloueada. Contacte con los administradores para más información.';
						//return;
					} elseif (isset($errors['not_activated'])) {// not activated user
						$error = 2;
						$datajson['textoerror'] = 'Su cuenta no está activada. Ha de activarla para poder acceder.';
						//                redirect('/auth/send_again/');
					} else {// fail
						$error = 3;
						foreach ($errors as $k => $v)
							$data['errors'][$k] = $this -> lang -> line($v);
						$datajson['textoerror'] = 'Dirección de correo o Contraseña incorrectas.';
					}
				}

				$datajson['error_message'] = $data;


				if ($this -> tank_auth -> is_logged_in()) {
					//$data['user_id'] = $this->tank_auth->get_user_id();
					$data['username1'] = $this -> tank_auth -> get_username();
					$data['username2'] = 'Salir';

					$data['titulo1'] = 'Gestionar cuenta';
					$data['titulo2'] = 'Salir de la sesión';

					$data['data_menu_login_1'] = 'mantener';
					$data['data_menu_login_2'] = 'salir';

				} else {
					$data['username1'] = 'Entrar';
					$data['username2'] = 'Registrarse';

					$data['titulo1'] = 'Identificarse';
					$data['titulo2'] = 'Darse de alta';

					$data['data_menu_login_1'] = 'entrar';
					$data['data_menu_login_2'] = 'registrar';
				}

				$datajson['coderror'] = $error;
				$datajson['datos'] = $data;

				echo json_encode($datajson);


			/**
			 * Se llama desde la vista PRINCIPAL_VIEW cuando se presiona el botón de Cerrar Sesión
			 */
			} elseif ($_POST['accion'] == 'salir')
			{
				$this -> tank_auth -> logout();

				$error = 0;

				if ($this -> tank_auth -> is_logged_in()) {
					//$data['user_id'] = $this->tank_auth->get_user_id();
					$data['username1'] = $this -> tank_auth -> get_username();
					$data['username2'] = 'Salir';

					$data['titulo1'] = 'Gestionar cuenta';
					$data['titulo2'] = 'Salir de la sesión';

					$data['data_menu_login_1'] = 'mantener';
					$data['data_menu_login_2'] = 'salir';

				} else {
					$data['username1'] = 'Entrar';
					$data['username2'] = 'Registrarse';

					$data['titulo1'] = 'Identificarse';
					$data['titulo2'] = 'Darse de alta';

					$data['data_menu_login_1'] = 'entrar';
					$data['data_menu_login_2'] = 'registrar';
				}

				$datajson['coderror'] = $error;
				$datajson['datos'] = $data;

				echo json_encode($datajson);



			} elseif ($_POST['accion'] == 'registrar')
			{
				// Autologarse
//				if( $this -> input -> post('recordar')) {
					
					$username = $this -> input -> post('usuario');
					$email = $this -> input -> post('email');
//					$cod_postal = $this -> input -> post('cod_postal');
					$password1 = $this -> input -> post('password1');
					$password2 = $this -> input -> post('password2');

					$error = 0;
					// Se inicializa el erro a 0. Indica que es correcto

					$email_activation = $this -> config -> item('email_activation', 'tank_auth');

					// Validaciones
					
					// 1. $password1 y $password2 han de ser iguales
					// 


					if (!is_null($data = $this -> tank_auth -> create_user($username, $email, $password1, $email_activation))) {// success
						$data['site_name'] = $this -> config -> item('website_name', 'tank_auth');
					} else {
						$errors = $this -> tank_auth -> get_error_message();
						foreach ($errors as $k => $v)
							$data['errors'][$k] = $this -> lang -> line($v);

						$datajson['error_message'] = $data;

						$error = 1;
						// Se produce algún error
					}
					// Se comprueban si ya existe en alguna tabla

					$datajson['coderror'] = $error;
					echo json_encode($datajson);

//				}

			/**
			 * Se llama desde la vista USUARIO_V cuando se presiona el botón de GuardarCambios
			 */
			} elseif ($_POST['accion'] == 'guardarcambios')
			{
				// Autologarse
				if( $this -> input -> post('recordar')) {
					
				}
				
				
			/**
			 * Se llama desde la vista USUARIO_V cuando se presiona el botón de Cambiar Password
			 */
			} elseif ($_POST['accion'] == 'cambiarpassword')
			{
				$passwordold = $this -> input -> post('passwordold');
				$password1 = $this -> input -> post('password1');
				$password2 = $this -> input -> post('password2');
				
				if ($password1 == $password2)
				{
					if ($this -> tank_auth -> change_password($passwordold, $password1))
					{
						echo 'Cambio de password ok';
					} else {
						echo 'No se ha podido cambiar el password';
					}
				} else {
					echo 'Password 1, y password 2 son diferentes';
				}
				
				include $_SERVER['DOCUMENT_ROOT'] . '/application/includes/acceso.inc.php';


			/**
			 * Se llama desde la vista USUARIO_V cuando se presiona el botón de Cambiar Password
			 */
			}
		}
	}



	function ubicacion_usuario() {
		// Se muestra la vista de CrearCuenta


	}
}

?>
